<?php
	/**
	 * 记录信息到日志
	 * 给定内容，写入文件
	 * 如果文件大于1M，则从新写一份
	 */

class Log{
	/**
	 * 建一个常量，代表日志文件的名称
	 * const用于定义class中的常量，define则是定义全局常量
	 */
	const LOGFILE = "curr.log";
	/**
	 * 写日志功能
	 */
	public static function write($content){
		//追加换行符
		$content .= "\r\n";
		//判断是否备份
		$log = self::isBak();
		//a为追加模式
		$file = fopen($log, "a");
		fwrite($file,$content);
		fclose($file);		
	}
	/**
	 *备份日志
	 */
	public static function bak(){
		//如果问价大于1M,则用时间备份改成年月日.bak的形式
		$log = ROOT."data/log/".self::LOGFILE;
		$bak = ROOT."data/log/".date('ymd').mt_rand(10000,99999)."bak";
		return rename($log,$bak);
	}
	
	/**
	 * 读取并判断日志的大小，返回单位M
	 */
	public static function isBak(){
		$log = ROOT."data/log/".self::LOGFILE;
		if(!file_exists($log)){//如果不存在，则创建该文件
			touch($log);//快速的创建一个文件
			return $log;
		}
		
		//清除日子文件缓存,短时间内操作同一个文件，则会缓存该文件，一下方法可以清除缓存
		clearstatcache(true,$log);
		//如果存在，则判断大小
		$size = filesize($log);
		if($size<1024*1024){//如果小于1M
			return $log;
		}
		//如果备份成功
		if(self::bak()){
			touch($log);
		}
		return $log;
	}
}
?>